Method and system for filesystem mount redirection

ABSTRACT

an automated method of establishing a filesystem utilizing the establishment of a first filesystem that interfaces with devices by loading software, including a first set of drivers, into memory and initializing the first set of drivers with the devices. The first filesystem is then mounted on a root directory that comprises a single storage device. The method allows input/output functionality within the first filesystem and, while input/output functionality is available to the first filesystem, the method accesses the single storage device to obtain software, including a second set of drivers. The method loads the software into the memory and initializes the second set of drivers with the devices to establish a second filesystem. The second filesystem is mounted on a root directory comprising the single storage device and another storage device and the first filesystem is then rendered inactive.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the present invention relate to the field of data storagesystems using filesystem services, e.g., with a computer system. Moreparticularly, embodiments of the present invention relate generally tothe remounting of a root filesystem, without interrupting filesystemaccess service, from one device configuration to another in a computersystem having mirrored volume disk storage.

2. Related Art

Secondary data storage is an integral part of large data processingsystems. A typical data storage system in the past utilized a single,expansive magnetic disk for storing large amounts of data. For singledisk memory storage systems, the speed of data transfer to and from thesingle, large disk is much slower than the processing speed of theCentral Processing Unit (CPU) and acts as a data processing bottleneck.In addition, backup capability is needed for improved reliability andserviceability (RAS). In response to these needs, mirrored, redundantarrays of independent disks (RAIDs) have evolved from the single diskstorage systems in order to match the speed of secondary storage accesswith the increasingly faster processing speeds of the CPU and improvedRAS. To increase system throughput, the RAID architecture of secondarystorage allows for the concurrent access of data from multiple diskdrives.

Whether a system has standard single data storage devices or a RAIDsystem of mirrored devices, there will inevitably come a time when adevice will be swapped out due to failure, upgrade, etc. To swap out adevice that is tied to a filesystem and mount a new one requires thatthe filesystem be unmounted from the first device and then mounted onthe second. This necessitates the termination and restart of thefilesystem services. In the case of the root filesystem, thisnecessitates rebooting the system. In order to reboot, the input/output(I/O) path from the device containing the root filesystem to the driversfor the new device needs to be known. In the case of booting off amirrored volume device, this information is supplied to the bootingfirmware by a device that manages the storage devices, known as a VolumeManager. The Volume Manager needs to be initialized as part of the bootprocess.

Traditionally, the I/O path information has been supplied from theVolume Manager via a forceload list that is maintained by a systemadministrator who has the responsibility of maintaining the storagedevices. As the complexity of the storage systems has increased, amethod has recently become available that allows the Volume Manager tofind the drive automatically, independent of the actual path, thusreducing the burden borne by the system administrator. One result ofthis change is that the path to each of the drivers is no longer anecessarily known quantity. As long as the Volume Manager is running andhas I/O available it can dynamically locate the drivers. Therefore, thelack of a defined path would be of no concern. However, this greatlycomplicates the boot process.

The boot process involves starting with a firmware program such as, inthe case of a SUN SPARC platform, for example, an open boot prom (OBP).The OBP firmware takes control Of whatever devices to which it hasaccess by using preloaded drivers from firmware. The firmware programson the OBP are not the same as the software programs that control thehardware when the operating system (e.g., SUN Solaris) is running.Therefore, the OBP and the operating system cannot both be running andcontrolling the same hardware, as there could be a conflict ininstructions that would confuse the hardware. Thus, the OBP must handoffthe hardware controls to the operating system kernel without an overlap.One of the main functions of the OBP firmware is to load and initializethe software that the kernel will need to access the storage system,e.g., create a filesystem.

One way to handle this handoff is shown as process 100 a of Prior ArtFIG. 1A. As shown in step 110, the firmware follows a predeterminedforceload list and preloads all the driver modules from disk into memoryfor the devices that are needed in order to access the root filesystem.These drivers are the ones needed to establish the Volume Manager, inthe case of a mirrored system. Then, as shown in step 120, access to I/Ois turned off, known as “lights out,” at which point the OBP startsrunning the operating system (OS), but using hardware access via thepreloaded driver modules from memory. During this “lights out” period,the root filesystem and the device on which it is mounted (root device)are established by initializing the just loaded drivers, devices, etc.Once the root filesystem is mounted on the root device, the kernel isstarted and the entire volume of mirrored devices must be established.In the instance of mirrored volumes, the root device is the VolumeManager. Once the rhirrored volume is established, I/O can be regained(“lights on”) as exemplified by step 130.

FIG. 1B is a block diagram showing a mirrored volume in a configurationthat may exist following the boot process at the time of “lights on”. Inthis example Filesystem 140 interfaces with the Volume Manager 145 whichinterfaces with storage devices 150, 155, 160 and 165.

If, in order to initialize, the OS needed to bring something in from adisk during “lights out”, the OBP must have been provided a path to thedisk. Therefore, if any of the driver components that are needed tomount the Volume Manager 145 are Missing, the kernel will fail to startafter lights out. Some of the driver modules needed by the OBP, forexample in the case of RAID storage systems, are obtained from theVolume Manager which builds the forceload list for the OBP. In theinstance where the system is running software in which the VolumeManager finds the drives independent of the actual path, it may not beable to supply the necessary information for the OBP to locate allnecessary hardware. In the instance where the system administratorsupplies the driver paths, there is always a possibility that there hasbeen an error or omission in the update process.

As upgraded and additional software versions become available and as themirrored systems become more complex, the burden on the Volume Managerto provide an accurate forceload list becomes great. It would bedesirable to reduce this burden on the Volume Manager.

SUMMARY OF THE INVENTION

Accordingly, a need exists for a method and system for allowing theestablishment of a filesystem to a storage device with input/output(I/O) remaining available for redirecting the filesystem for access tomultiple storage devices, such as mirrored volumes and RAID systems. Inother words, a method is needed to eliminate the need, in the case ofroot filesystem redirection, for completely terminating and subsequentlyrestarting root filesystem services. As a result, the Volume Manager canbe freed of the burden of specifying a forceload list because I/Oremains active during the initialization of the filesystem.

Specifically, one embodiment of the present invention provides anautomated method of establishing a filesystem. The method comprisesestablishing a first filesystem that interfaces with devices by loadingsoftware, including a first set of drivers, into memory and initializingthe first set of drivers with the devices.

The first filesystem is then mounted on a root directory that comprisesa single storage device. The method allows input/output functionalitywithin the first filesystem and, while input/output functionality isavailable to the first filesystem, the method accesses the singlestorage device to obtain software, including a second set of drivers.The method loads the software into the memory and initializes the secondset of drivers with the devices to establish a second filesystem. Thesecond filesystem is mounted on a root directory comprising the singlestorage device and another storage device and the first filesystem isthen rendered inactive. According to one embodiment, the software isdetermined dynamically.

According to one embodiment, the single storage device and anotherstorage device comprise a mirrored pair of drive devices. In oneembodiment, the second filesystem is a volume manager and, according toone embodiment the volume manager directs input/output to and from themirrored pair of drive devices. According to one embodiment, the devicesinclude drive devices, bus controller devices and bus devices.

In one embodiment the method further comprises an application programinterfacing with the first filesystem and the second filesystem isestablished transparently to the application program. The method furthercomprises the application program interfacing with the second filesystemafter the establishment thereof.

In one embodiment, a data storage system is disclosed that includes aprocessor, a plurality of devices and a memory wherein the memorycomprises instructions for implementing a method of transparentlyremounting filesystems.

According to one embodiment, an automatic method of establishing afilesystem for accessing a plurality of storage devices is disclosed.The method includes booting from a firmware program that comprisesfirmware drivers. The booting process includes using the firmwaredrivers, accessing a first set of drivers from a first storage deviceand, using the first set of drivers, establishing a first filesystemmounted on a root directory that comprises the first storage device.Once the first filesystem is established, enabled input/outputfunctionality of the first filesystem to the root directory is utilizedto access a second set of drivers from the first storage device. Thesecond set of drivers is then used to establish a second filesystemmounted on a root directory. The root directory comprises a number ofstorage devices including the first storage device. The first filesystemis then rendered inactive.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part ofthis specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention:

Prior Art FIG. 1A is a flow diagram of a method for booting up a systemon which a root filesystem is to be remounted in accordance with oneembodiment of the conventional art.

Prior Art FIG. 1B is a block diagram illustrating a configuration of aroot filesystem that has been remounted at the time of “lights on”according to one embodiment of the conventional art.

FIG. 2 is a logical block diagram of an exemplary computer upon which anembodiment of the present invention may be practiced.

FIG. 3A is a block diagram illustrating a filesystem residing on a firstdevice in accordance with an embodiment of the present invention.

FIG. 3B is a block diagram illustrating a filesystem residing on asecond device following redirection in accordance with an embodiment ofthe present invention.

FIG. 4 is a flow diagram illustrating an overview of acomputer-implemented process for redirecting a filesystem from a singledisk device to a Volume Manager in accordance with one embodiment of thepresent invention.

FIG. 5A is a block diagram illustrating a filesystem residing on a diskin accordance with an embodiment of the present invention.

FIG. 5B is a block diagram illustrating a having been redirected to aVolume Manager in accordance with an embodiment of the presentinvention.

FIG. 6 is a flow diagram of a computer-implemented process forredirecting a filesystem from a disk to a Volume Manager in accordancewith one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made in detail to the preferred embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with thepreferred embodiments, it will be understood that they are not intendedto limit the invention to these embodiments. On the contrary, theinvention is intended to cover alternatives, modifications andequivalents, which may be included within the spirit and scope of theinvention as defined by the appended claims. Furthermore, in thefollowing detailed description of the present invention, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be obvious toone of ordinary skill in the art that the present invention may bepracticed without these specific details. In other instances, well-knownmethods, procedures, components, and circuits have not been described indetail so as not to unnecessarily obscure aspects of the presentinvention.

Notation and Nomenclature

Some portions of the detailed descriptions that follow are presented interms of procedures, logic blocks, processing, and other symbolicrepresentations of operations on data bits within a computer memory.These descriptions and representations are the means used by thoseskilled in the data processing arts to most effectively convey thesubstance of their work to others skilled in the art. In the presentapplication, a procedure, logic block, process, or the like, isconceived to be a self-consistent sequence of steps or instructionsleading to a desired result. The steps are those requiring physicalmanipulations of physical quantities. Usually, although not necessarily,these quantities take the form of electrical or magnetic informationcapable of being stored, transferred, combined, compared, and otherwisemanipulated in a computer system. It has proven convenient at times,principally for reasons of common usage, to refer to these informationas transactions, bits, values, elements, symbols, characters, fragments,pixels, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present invention,discussions utilizing terms such as “redirecting,” “mounting,”“converting,” “opening,” “flushing,” “suspending,” “creating,”“pointing,” “transmitting,” “receiving,” “closing,” “enabling,”“generating,” or the like, refer to actions and processes of a computersystem or similar electronic computing device. The computer system orsimilar electronic computing device manipulates and transforms datarepresented as physical (electronic) quantities within the computersystem memories, registers or other such information storage,transmission or display devices.

Referring to FIG. 2, embodiments of the present invention are comprisedof computer-readable and computer-executable instructions that reside,for example, in computer-readable media of an electronic system, such asa host computer system or embedded system. FIG. 2 is a block diagram ofexemplary embedded components of a computer system 210 upon whichembodiments of the present invention may be implemented. Exemplarycomputer system 210 includes an internal address/data bus 220 forcommunicating information, a central processor 201 coupled with the bus220 for processing information and instructions, a volatile memory 202(e.g., random access memory (RAM), static RAM dynamic RAM, etc.) coupledwith the bus 220 for storing information and instructions for thecentral processor 201, such as instructions for Volume Manager 212, anda non-volatile memory 203 (e.g., read only memory (ROM), programmableROM, flash memory, EPROM, EEPROM, etc.) coupled to the bus 220 forstoring static information such as Open Boot PROM (OBP) firmware 213 andother instructions for processor 201.

With reference still to FIG. 2, an optional signal Input/Output (I/O)device 208 is shown. The I/O device 208 is coupled to bus 220 forproviding a communication link between computer system 210 and an arraynetwork of data storage devices, such as disks. As such, signal I/Odevice 208 enables the central processor unit 201 to communicate with ormonitor other electronic systems blocks that are coupled to the computersystem 210. In one embodiment of the present invention, the input andoutput device 208 is a serial communication port, but could also be anynumber of well known communication standards and protocols, e.g.,Universal Serial Bus (USB), Ethernet, infrared (IR) communication,Bluetooth wireless communication, etc. Instructions and data from thecomputer system 210 travel through the port and onto an external bus 230that provides for data transfer between components of the data storagesystem 204, including between volume manager 212, processor 201 and anarray of data disks and associated drives 215.

FIG. 3A is a block diagram 300 a illustrating a filesystem 310 a mountedon a first device 320 in accordance with an embodiment of the presentinvention. Filesystem 310 a may need to be moved from first device 320,(e.g., a disk), to another device (e.g. second device 330 of FIG. 3B).This may be a result of a fault on device 320, the installation of anewer device, a boot-up process or any one of a number of reasons formoving a filesystem from one device to another. In one embodiment,filesystem 310 a is mounted on a single disk.

FIG. 3B is a block diagram 300 b illustrating a second filesystem 310 bmounted on a second device 330 or group of devices following redirectionas defined below with respect to FIG. 4, in accordance with anembodiment of the present invention. Second device 330 may be a disk, aVolume Manager supplying the filesystem data to a set of disks or any ofa number of file storage devices known to those skilled in the art ofinformation management.

FIGS. 4 and 6 below are flow diagrams 400 and 600 ofcomputer-implemented processes for redirecting a filesystem from onedevice to another device in accordance with embodiments of the presentinvention. Flow diagrams 400 and 600 include processes of the presentinvention which, in various embodiments, are carried out by a processorand electrical components under the control of computer readable andcomputer executable instructions. The computer readable and computerexecutable instructions may reside, for example, in data storagefeatures such as volatile memory 202 and/or non-volatile memory 202 or203 of FIG. 2. However, the computer readable and computer executableinstructions may reside in any type of readable storage medium. Althoughspecific steps are disclosed in flow diagram 400, such steps areexemplary. That is, the present invention is well suited to performingvarious other steps or variations of the steps recited in FIGS. 4 and 6.Within the present embodiment, it should be appreciated that the stepsof flow diagrams 400 and 600 may be performed by software, by hardwareor by any combination of software and hardware.

FIG. 4 is a flow diagram 400 of a general overview of the steps in acomputer-implemented process for redirecting a filesystem (e.g., 310 aof FIG. 3A) from a single device (e.g., 320 of FIG. 3A) to anotherdevice (e.g., 330 of FIG. 3B) such as a Volume Manager, in accordancewith one embodiment of the present invention.

In step 410, a filesystem is mounted to a single disk. The mountingprocess involves several steps that include using firmware drivers toobtain the necessary drivers (from the single disk) for mounting thefilesystem to the single disk. While the drivers for mounting thefilesystem are being loaded to memory, input/output (I/O) activity issuspended so that there is no overlap between the firmware controllingthe drivers and the operating filesystem to which the driver control isbeing transferred. While lights out is in effect, the drivers andhardware for establishing the filesystem are initialized on the singledisk. Although only one disk is being used at this point, the singledisk may be part of a disk array.

In step 420, according to one embodiment, the I/O activity is reinstated(lights on). The root filesystem 310 a is now mounted on the singledevice 320 and all I/O is available for the following step.

Next, in accordance with one embodiment and as illustrated in step 430,the currently mounted filesystem on device 320 is used to load thesoftware objects needed for a Volume Manager 330. With I/O available,any objects determined to be missing from a configuration list may bereported and the path to any missing objects may be determined accordingto the functionality of the active system. In the case of certainstorage systems in which the Volume Manager finds the drives independentof a preconfigured path, the availability of I/O allows the VolumeManager 330 to be loaded. Once loaded, the Volume Manager isinitialized. This creates a second filesystem, one including the VolumeManager.

In step 440 of FIG. 4, the I/O between the second filesystem and device320 is suspended and the second filesystem is transparently remounted tothe Volume Manager 330 so that the mirrored pair system becomesactivated. Device 320 is then closed and I/O activity is reinstated tothe second filesystem 310 b via the Volume Manager, in accordance withone embodiment, and the process ends.

FIG. 5A is a block diagram 500 a illustrating a first filesystem 510 amounted on a disk 520 in accordance with an embodiment of the presentinvention. Filesystem 510 a may need to be moved from first device 520,(e.g., a disk), to a second device (e.g. Volume Manager 515 of FIG. 5B).For example, during a boot up on a computer operating system such as aSUN Microsystems Solaris™ operating environment, having a set ofmirrored volumes of disk storage devices, it may be desirable tominimize the paths that the boot software/firmware uses to mount theroot filesystem, thus minimizing the time that the input/output (I/O)activity is suspended. One way to do so is, according to an embodimentof the present invention, to mount the root filesystem on a single diskduring the boot up. Once the operating system (e.g., Solaris™) is up andrunning and the I/O is available, it may be remounted on the VolumeManager that, in turn, affords the volume of mirrored devices access tothe root filesystem.

FIG. 5B is a block diagram illustrating a second filesystem 510 bmounted on a Volume Manager 515 following redirection, in accordancewith an embodiment of the present invention. Volume Manager 515 managesa mirrored volume of data storage disks 520, 525, 530 and 535, accordingto one embodiment. The Volume Manager 515 has the responsibility ofknowing the location of drivers for the volume of managed disks. Inorder to know these locations, in some instances, the Volume Manager mayneed to have I/O activity available.

FIG. 6 is a flow diagram of a computer-implemented process 600 forredirecting a filesystem (e.g., filesystem 510 a of FIG. 5A) from a disk(e.g., disk 520 of FIG. 5A) to a Volume Manager (e.g., Volume Manager515 of FIG. 5B) during a boot-up process, in accordance with oneembodiment of the present invention. In step 610, the boot firmware,such as Open Boot PROM (OBP) that is run on the SUN Solaris™ operatingsystem, is initialized. It is appreciated that any combination ofhardware and/or software components may be used to realize such aprocess and OBP is only one example.

As illustrated by step 610 of process 600 and in accordance with oneembodiment of the present invention, at the time of power on, the OBP isinitialized. The initialization of the OBP uses firmware drivers and adefined path to a specified single device 520. Single device 520,according to one embodiment, is one disk of a mirrored volume. From thissingle device, the OBP obtains the drivers needed to mount firstfilesystem 510 a onto the single device 520.

Whereas, if the filesystem were to be mounted directly to a VolumeManager for managing a system of mirrored pairs, the determination ofthe drivers and objects necessary for initializing the Volume Managerwould be more complex than those needed for mounting to the singledevice. Also, since the initialization process requires the suspensionof I/O so as not to have overlapping systems controlling the samehardware, if drivers or objects were missing or unknown, theinitialization would fail without notification of missing objects.

Still referring to FIG. 6, in step 620, according to one embodiment, theI/O is suspended (lights out) and the drivers and hardware needed toestablish the root filesystem on the single device are initialized. Oncethe initialization process is complete, the root filesystem (e.g.,filesystem 510 a of FIG. 5A) is mounted on the single device 520, andthe system kernel is up and running. The I/O is then enabled (lightson).

As illustrated by step 630, once the first filesystem is established andthe I/O is enabled, the first filesystem may be used to determine andobtain the location of objects and/or devices needed to construct aVolume Manager according to one embodiment. The objects and/or devicesmay comprise such items as software drivers, bus devices, bus controllerdevices, bus drivers, or any object or device needed for the completeestablishment of the Volume Manager. A character string may furnish thepaths to the devices, or they may be determined dynamically by theVolume Manager during its initialization process.

In step 640 of process 600, according to one embodiment, the VolumeManager is initialized and I/O activity is suspended between the singledevice 520 and the root filesystem 510. At this point, a secondfilesystem 510 b has been created that includes the Volume Manager.

The root file system 510 b is then, in accordance with one embodiment ofthe present invention and as illustrated in step 650 of FIG. 6,transparently transferred from single device 520 to Volume Manager 145.By being transparently transferred, any application program that may beinterfacing with the root filesystem as mounted on the single device, atthe time of the transfer to the Volume Manager the application programwould continue running on the root filesystem as mounted on the VolumeManager. Since the system kernel is up and running during the transfer,any available system software task may be performed, such astransitioning from the single disk to the mirrored pair. This transitionassumes that the data on the two disks of a mirrored pair is identical.At this point, the root filesystem is mounted on the Volume Manager.

In step 660 of FIG. 6, the I/O activity is resumed, in accordance withone embodiment of the present invention, thus permitting the secondfilesystem 510 b to now access data from the Volume Manager. The VolumeManager may now direct input/output to and from the mirrored pair ofdevices. The process is now complete and the flow diagram is exited.

Table 1 below is a glossary of terms as used in ensuing tables of pseudocode that might be used in a Solaris™ operating environment as providedby Sun Microsystems for establishing a new device for mounting a rootfilesystem. The function commands and terms may include, but are notlimited to, those described in the following paragraphs and associatedtables. TABLE 1 I/O: Input/Output. A read from, or a write to, a device.Block I/O: I/O performed in granularity of a defined block size.filesystem: A service providing directory and file semantics layered ontop of a device providing block I/O services. mount: The act ofinstantiating a filesystem's services, with I/O operations directed toan underlying device. unmount: The act of terminating a previous mountoperation. All filesystem services must cease to complete the unmount.dev_t: A device reference. open: Initializing a device instance toaccept I/O requests. close: Notifying an open device instance that I/Orequests have ceased. vnode: A file reference. Also called filesystemmetadata. inode: A filesystem-specific form of a vnode. boot: Theoperation of instantiating the services provided by the system. bootdevice: The device on which the system is booted. Interchangable withroot device. root: The filesystem of the boot device. volume: A devicecomposed of multiple physical devices. mirror: A volume composed ofdevices organized in one or more symmetric subsets, with each subsetcontaining identical data. Redundancy permits recovery in the event of aphysical device failure. SVM: Solaris Volume Manager. The softwarecomponent of Solaris capable of constructing volumes built on individualphysical devices.

Table 2 below illustrates one example of pseudo code that may be used ina Solaris™ operating environment as provided by Sun Microsystems forinitializing a new device, (e.g., Volume Manager 515) onto which theroot filesystem is to be redirected, as shown in step 630 of FIG. 6 inaccordance with one embodiment of the present invention. TABLE 2 opennew device get dev_t used by root filesystem, on currently mounted bootdevice get dev_t of disk volume device, on which root filesystem is tobe remounted create vnode for new root device open new root device vnode

Table 3 below illustrates one example of pseudo code that may be used ina Solaris™ operating environment as provided by Sun Microsystems forsuspending I/O activity between the root filesystem (e.g., filesystem510 of FIG. 5A) and the currently mounted device, (e.g., disk 520 ofFIG. 5A), as shown in step 640 of FIG. 6 in accordance with oneembodiment of the present invention. TABLE 3 suspend I/O activity fromfilesystem to currently mounted device flush any outstanding I/O's tocurrently mounted device suspend root filesystem I/O activity to rootdevice

Table 4 below illustrates one example of pseudo code that may be used ina Solaris™ operating environment as provided by Sun Microsystems fortransparently transferring filesystem references from the old (currentlymounted) device 520 to the new device (e.g., Volume Manager 515), asshown in step 650 of FIG. 6 in accordance with one embodiment of thepresent invention. TABLE 4 redirect all filesystem references from olddevice to the new device redirect references from original root deviceto new root device convert buf reference of root filesystem inode fromoriginal root device to new root device convert all cached inodes withan old root dev_t reference to refer to the dev_t of the new root devicepoint global root filesystem references to new root dev_t and new rootvnode

Table 5 below illustrates one example of pseudo code that may be used ina Solaris™ operating environment as provided by Sun Microsystems forunsuspending I/O activity in accordance with the embodiment of step 660of process 600. TABLE 5 unsuspend I/O activity, permitting filesystem tonow access file data and filesystem metadata from new device. enableroot filesystem I/O to new root device close old device close old rootdevice release vnode of old root device

Following the redirection of the root filesystem from the originallymounted device, the Volume Manager on which the root filesystem is nowmounted is currently providing access for the mirrored volume to thefile data and filesystem metadata. In this manner the filesystem hasbeen redirected with no need for complete termination and restart offilesystem services and with I/O availability for determining the driverpaths during Volume Manager establishment. The process now exits flowdiagram 600.

The foregoing descriptions of specific embodiments have been presentedfor purposes of illustration and description. They are not intended tobe exhaustive or to limit the invention to the precise forms disclosed,and many modifications and variations are possible in light of the aboveteaching. The embodiments were chosen and described in order to bestexplain the principles of the invention and its practical application,to thereby enable others skilled in the art to best utilize theinvention and various embodiments with various modifications as aresuited to the particular use contemplated. It is intended that the scopeof the invention be defined by the claims appended hereto and theirequivalents.

1. An automated method of establishing a filesystem comprising: a)establishing a first filesystem which interfaces with devices by loadingsoftware, including a first set of drivers, into memory and initializingsaid first set of drivers with said devices, said first filesystemmounted on a root directory comprising a single storage device; b)allowing input/output functionality within said first filesystem; and c)while input/output functionality is made available to said firstfilesystem, accessing said single storage device to obtain software,including a second set of drivers, and loading said software into saidmemory said initializing said second set of drivers with said devices toestablish a second filesystem, wherein said second filesystem is mountedon a root directory comprising said single storage device and anotherstorage device and wherein said first filesystem is rendered inactive.2. A method as described in claim 1 wherein said single storage deviceand said another storage device comprise a mirrored pair of storagedevices.
 3. A method as described in claim 1 wherein said secondfilesystem comprises a volume manager.
 4. A method as described in claim2 wherein said second filesystem comprises a volume manager whichdirects input/output to and from said mirrored pair of storage devices.5. A method as described in claim 1 wherein said devices comprise:storage devices; bus controller devices; and bus devices.
 6. A method asdescribed in claim 1 further comprising an application programinterfacing with said first filesystem and wherein said secondfilesystem is established transparently to said application program andfurther comprising said application program interfacing with said secondfilesystem after the establishment thereof.
 7. A method as described inclaim 1 wherein said software of said c) is determined dynamically.
 8. Adata storage system comprising a processor, a plurality of devices and amemory wherein said memory comprises instructions for implementing amethod of transparently remounting filesystems comprising: a)establishing a first filesystem which interfaces with said plurality ofdevices by loading software, including a first set of drivers, into saidmemory and initializing said first set of drivers with said plurality ofdevices, said first filesystem mounted on a root directory comprising asingle storage device; b) activating input/output functionality withinsaid first filesystem; and c) while input/output functionality is madeavailable to said first filesystem, accessing said single storage deviceto obtain software, including a second set of drivers, and loading saidsoftware into said memory and initializing said second set of driverswith said plurality of devices to establish a second filesystem, whereinsaid second filesystem is mounted on a root directory comprising saidsingle storage device and another storage device and wherein said firstfilesystem is rendered inactive.
 9. A data storage system as describedin claim 8 wherein said single storage device and said another storagedevice comprise a mirrored pair of storage devices.
 10. A data storagesystem as described in claim 8 wherein said second filesystem comprisesa volume manager.
 11. A data storage system as described in claim 9wherein said second filesystem comprises a volume manager which directsinput/output to and from said mirrored pair of storage devices.
 12. Adata storage system as described in claim 8 wherein said plurality ofdevices comprise: storage devices; bus controller devices; and busdevices.
 13. A data storage system as described in claim 8 furthercomprising an application program interfacing with said first filesystemand wherein said second filesystem is established transparently to saidapplication program and wherein said method further comprises saidapplication program interfacing with said second filesystem after theestablishment thereof.
 14. A data storage system as described in claim 8wherein said software of said c) is determined dynamically.
 15. Anautomated method of establishing a filesystem for accessing a pluralityof storage devices, said method comprising: a) booting from a firmwareprogram which comprises firmware drivers, wherein said bootingcomprises: a1) using said firmware drivers, accessing a first set ofdrivers from a first storage device; and a2) using said first set ofdrivers, establishing a first filesystem mounted on a root directorycomprising said first storage device; b) once said first filesystem isestablished, utilizing enabled input/output functionality of said firstfilesystem to said root directory to access a second set of drivers fromsaid first storage device; and c) using said second set of drivers,establishing a second filesystem mounted on a root directory comprisinga plurality of storage devices including said first storage device andwherein said first filesystem is rendered inactive.
 16. A method asdescribed in claim 15 wherein said a2) comprises: loading said first setof drivers into memory; disabling said input/output functionality tosaid first storage device; initializing said first set of drivers anddevices associated with accessing said first storage device to attachsaid first filesystem to said first storage device; and resuming saidinput/output functionality to said first storage device.
 17. A method asdescribed in claim 15 wherein said plurality of storage devices comprisea mirrored pair of storage devices.
 18. A method as described in claim15 wherein said second filesystem comprises a volume manager.
 19. Amethod as described in claim 15 wherein said first set of drivers aredefined according to a predetermined forceload list within said firmwareprogram.
 20. A method as described in claim 17 wherein said secondfilesystem comprises a volume manager which directs input/output to andfrom said mirrored pair of storage devices.
 21. A method as described inclaim 15 further comprising an application program interfacing with saidfirst filesystem and wherein said second filesystem is establishedtransparently to said application program and further comprising saidapplication program interfacing with said second filesystem after theestablishment thereof.
 22. A method as described in claim 15 whereinsaid second set of drivers is determined dynamically.
 23. A method asdescribed in claim 19 wherein said second set of drivers is determineddynamically.
 24. An automated method of transparently transferring froma first filesystem to a second filesystem comprising: a) booting from afirmware program which comprises firmware drivers, wherein said bootingcomprises: a1) using said firmware drivers, accessing a first set ofdrivers from a first storage device, said first set of drivers specifiedwithin a predetermined firmware listing; and a2) using said first set ofdrivers, establishing a first filesystem mounted on a root directorycomprising said first storage device; b) once said first filesystem isestablished, utilizing enabled input/output functionality of said firstfilesystem to said root directory to access a second set of drivers fromsaid first storage device and software for constructing a volumemanager; and c) using said second set of drivers and said software,establishing a second filesystem, comprising said volume manager, andmounted on a root directory comprising a plurality of storage devicesconfigured as at least one mirrored pair and wherein said firstfilesystem is rendered inactive.
 25. A method as described in claim 24wherein said second set of drivers is determined dynamically.
 26. Amethod as described in claim 24 wherein said volume manager directsinput/output to and from said at least one mirrored pair.
 27. A methodas described in claim 24 wherein said second filesystem is establishedtransparently.